A white balance control device used for an image processing device using CCDs as image pickup elements provides a technique by which changes in hue of an output signal of CCDs due to color temperatures of a light source are corrected without giving any congruous feeling to the human eyes, and forms an essential function for a digital camera, etc., using CCDs.
Conventionally, the white balance control device is mainly classified into two systems. One system is referred to as an external measuring system in which an external color temperature sensor is installed separately from an image pickup system so that, based upon its output signal, the hue of the pickup system is corrected. The other system is referred to as a TTL (Through the Lens) system in which color information of an image picked up by the image pickup system is utilized to find the amount of correction for the hue.
The latter system is further classified into an entire screen averaging system for correcting the sum total of all the color differences in a picked-up image to “0” in accordance with rules obtained through experiences, and a white-detection system in which white areas are extracted from an image and color differences in these areas are corrected to “0”. The external measuring system requires an exclusively-used sensor, and the entire screen averaging system is susceptible to great errors; therefore, at present, the white-detection system has been widely used.
The conventional white-detection method will be explained here. For example, Japanese Patent Application Laid-Open No. H2-26193 discloses a white balance device and white detection method. According to this method values of Y, Cr, Cb in color information are used so as to find values Cr/Y, Cb/Y, and in the case when the calculated values of Cr/Y and Cb/Y are included in a fixed range along a characteristic curve of black-body radiation on the Cb/Y-Cr/Y coordinates, the corresponding pixel is judged as white. In this case, Y represents luminance, Cr represents color-difference R−Y, and Cb represents color-difference value B−Y of a pixel.
When the values of Cr/Y, Cb/Y are found from the values of Y, Cr, Cb obtained from the CCDs of an image processing device, the value with respect to pixels having the same color is virtually determined in a univocal manner on the Cb/Y-Cr/Y coordinates. Moreover, the characteristic of an object along black-body radiation due to the color temperature of the light source, which relates to the white balance control, is indicated by a curve, as shown in FIG. 8, on the Cb/Y-Cr/Y coordinates.
Therefore, an area showing Cr/Y and Cb/Y values close to this curve is more likely to be white. In the white detection method described in the above-mentioned JP No. H2-26193, an area showing Cr/Y and Cb/Y values that are contained in an area formed by surrounding the black-body radiation characteristic curve with four straight lines, as indicated by a portion with slanting lines in FIG. 8 in an picked-up image, is detected as a white area, and the hue is corrected so as to set the color difference in this area to “0”, thereby carrying out a white balance adjusting process.
In the case when no white area exists in a picked-up image, the white-detection condition is alleviated so as to find the amount of correction by using color information of the entire image, and in this case, a limitation is added to the amount of correction so as not to apply an excessive correction on a chromatic color subject.
However, in the method disclosed by the above-mentioned JP No. H2-26193, since the values Cr/Y, Cb/Y that are set to fixed values independent of the luminance of image data are used with respect to a white subject, it has an advantage in which it is possible to reduce errors caused by erroneously judging a deep chromatic color subject with low luminance as white. However, if white subjects and chromatic color subjects having colors close to the characteristic of black-body radiation, such as skin colors, exist in a mixed manner, areas other than white might be judged as white, resulting in errors in white-detection.